C++11 – 使用std::thread,std::shared_future,std::promise并行化/多线程化for循环,提升处理速度
1 应用场景 在实际的应用过程中,经常会遇到一个大数量的for循环耗时的问题,比如说出现了一个10000000次的for循环,每一次循环处理业务逻辑需要耗时1ms,如: for (int i = 0; i < 10000000; ++i) { dosomething() } 那么整个for循环…
- C++
- 2021-12-17
C++11 – 封装std::thread,增加子线程启动、暂停、唤起、停止功能
1 封装std::thread,增加子线程启动、暂停、唤起、停止功能 C++标准库的std::thread已经为C++增加了很好的跨平台多线程编程体验,程序员只需要使用标准库std::thread就可以写出很好的多线程并发程序。但是在std::thread中对线程的控制需要自主控制。 我们经常会在子…
- C++
- 2021-10-21
C++11 – 使用std::thread在类内部以成员函数作为多线程函数执行异步操作
1 使用std::thread在类内部创建多线程函数 在有些应用场景下,需要在某个类中以某个成员函数作为异步线程函数,或者需要多线程去执行某个耗时操作的成员函数。在这种应用场景下,知道如何在类内部以成员函数创建多线程函数就是一个比较基础的问题。 1.1 代码示例 demo代码如下: #include…
- C++
- 2021-09-09
C++11/std::thread – 线程的基本用法
1 获取CPU核心数量 使用std::thread::hardware_concurrency()获取当前CPU核心数量。 代码示例: #include <iostream> #include <thread> int main() { std::cout << …
- C++
- 2020-04-01
C++11/std::thread – 线程管理join/detach
1 join方法 代码示例: #include <iostream> #include <thread> void HelloWorld() { std::cout << "hello world" << std::endl; } int main()…
- C++
- 2020-04-01
C++11/std::thread – 可作为线程函数的几种方式总结
1 使用普通函数作为线程函数 代码示例: #include <iostream> #include <thread> void ThreadFunction() { std::cout<< "线程函数被启动" << std::endl; } int m…
- C++
- 2020-04-01